package context;

import demo.Demo;
import demo.DemoLogger;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Scope;

@Configuration

/**
 * Config类是Spring的配置信息类，Spring5以后官方提倡配置书写在配置信息类中，
 * 在官网中也提供了在XML文件中完成配置的书写方案。
 *
 * 使用@Configuration声明在类上方，明确这个类就是一个配置信息类
 *
 */
@ComponentScan(basePackages = "demo;controller;service")
public class Config {

    /**
     * 告诉Spring在启动的时候，加载被@Bean声明的方法
     * @return Spring创建的Demo类型的对象，BeanId为方法名bean
     */
    @Bean
    public Demo bean(){
        return new Demo();
    }


    @Bean(initMethod = "open",destroyMethod = "close")
    @Scope("prototype")
    public DemoLogger demoLogger(){
        return new DemoLogger();
    }


}
